/*
 * @Description:
 * 
 * @Author: rendc
 * 
 * @Date: 2025-09-02 11:24:21
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-09-02 11:37:40
 */
package com.briup;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.junit.Test;

public class DMLTest {
  // 数据库连接四要素
  // 驱动
  String driverClass = "com.mysql.cj.jdbc.Driver";
  // 数据库地址
  String url = "jdbc:mysql://127.0.0.1:3306/briup";
  // 数据库的用户名
  String username = "briup"; // 用户名
  // 数据库的用户密码
  String password = "briup"; // 密码

  // 定义方法，去删除t_user表
  @Test
  public void dropTable() {
    // 创建数据库驱动
    Connection conn = null;
    // 创建数据库操作对象
    Statement stmt = null;
    try {
      // 1. 注册驱动
      Class.forName(driverClass);
      // 2. 获取数据库连接对象
      conn = DriverManager.getConnection(url, username, password);
      // 3. 获取数据库操作对象（ Statement 类型或者子类型对象）
      stmt = conn.createStatement();
      // 4. 执行sql语句
      String sql = "drop table if exists t_user;";
      // 执行查询语句 executeQuery
      // 执行 DDL DML语句 executeUpdate
      int rows = stmt.executeUpdate(sql);
      // 5. 处理结果集（如果需要的话，一般查询语句必须要处理）
      System.out.println("返回结果：" + rows);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      // 6. 释放资源
      // 关闭前面打开的资源
      if (stmt != null) {
        try {
          stmt.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      if (conn != null) {
        try {
          conn.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }

  // 定义方法，去创建t_user表。
  @Test
  public void createTable() {
    // 创建数据库驱动
    Connection conn = null;
    // 创建数据库操作对象
    Statement stmt = null;
    try {
      // 1. 注册驱动
      Class.forName(driverClass);
      // 2. 获取数据库连接对象
      conn = DriverManager.getConnection(url, username, password);
      // 3. 获取数据库操作对象（ Statement 类型或者子类型对象）
      stmt = conn.createStatement();
      // 4. 执行sql语句
      String sql = "create table t_user("
          + "id int primary key,"
          + "name varchar(50) not null,"
          + "age int"
          + ");";
      // 执行查询语句 executeQuery
      // 执行 DDL DML语句 executeUpdate
      int rows = stmt.executeUpdate(sql);
      // 5. 处理结果集（如果需要的话，一般查询语句必须要处理）
      System.out.println("返回结果：" + rows);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      // 6. 释放资源
      // 关闭前面打开的资源
      if (stmt != null) {
        try {
          stmt.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      if (conn != null) {
        try {
          conn.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
}